home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / snip9_91.arc / QUERY.C < prev    next >
C/C++ Source or Header  |  1991-09-17  |  1KB  |  47 lines

  1. /*
  2. **  QUERY.C - Timed query with default for batch files
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <time.h>
  7.  
  8. main(int argc, char *argv[])
  9. {
  10.       int ch = '\0', def_ch = '\0';
  11.       char *prompt = "(y/n) ";
  12.       clock_t start, limit = (clock_t)0;
  13.  
  14.       if (1 < argc)
  15.       {
  16.             def_ch = toupper(*argv[1]);
  17.             if ('Y' == def_ch)
  18.                   prompt[1] = def_ch;
  19.             else if ('N' == def_ch)
  20.                   prompt[3] = def_ch;
  21.             else  def_ch = '\0';
  22.       }
  23.       fputs(prompt, stderr);
  24.       if (2 < argc)
  25.       {
  26.             start = clock();
  27.             limit = (clock_t)(CLK_TCK * atoi(argv[2]));
  28.       }
  29.       while ('Y' != ch && 'N' != ch)
  30.       {
  31.             while (!kbhit())
  32.             {
  33.                   if (limit && (limit <= (clock() - start)))
  34.                   {
  35.                         ch = def_ch;
  36.                         goto BYE;
  37.                   }
  38.             }
  39.             ch = toupper(getch());
  40.             if ('Y' != ch && 'N' != ch && (1 < argc))
  41.                   ch = def_ch;
  42.       };
  43. BYE:  fputc(ch, stderr);
  44.       fputc('\n', stderr);
  45.       return ('Y' == ch);
  46. }
  47.